﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Chilis.CRM.TransferObjects;
using System.Data.SqlClient;
using System.Data;

namespace Chilis.CRM.DataAccess
{
    public class DTipoComentario : Conexion
    {
        static DTipoComentario()
        {
        }
        private DTipoComentario()
        {
        }

        private static DTipoComentario _instancia = new DTipoComentario();
        public static DTipoComentario Instancia
        {
            get { return _instancia; }
        }

        #region Helper Tipo Publicacion

        private TipoComentario CreaTipoComentario(DataRow fila)
        {
            var publicacion = new TipoComentario();

            publicacion.IdTipoComentario = fila.Field<int>("IdTipoComentario");
            publicacion.Descripcion = fila.Field<string>("Descripcion");


            return publicacion;
        }

        private IList<TipoComentario> CreaTipoComentario(DataTable tabla)
        {
            var lista = new List<TipoComentario>();

            foreach (DataRow fila in tabla.Rows)
            {
                lista.Add(CreaTipoComentario(fila));
            }

            return lista;
        }

        #endregion

        public IList<TipoComentario> ListarTipoComentario()
        {

            string qry = "usp_ListarTipoComentario";

            var db = CrearBaseDatos();
            var ds = db.ExecuteDataSet(qry);


            return CreaTipoComentario(ds.Tables[0]);

        }

        public TipoComentario ObtenerTipoComentario(int idTipoComentario)
        {

            string qry = "usp_ObtenerTipoComentario";

            var db = CrearBaseDatos();
            var ds = db.ExecuteDataSet(qry, idTipoComentario);


            return CreaTipoComentario(ds.Tables[0].Rows[0]);

        }

        public int ActualizarTipoComentario(TipoComentario tipoPublicacion)
        {
            string qry = "usp_ActualizarTipoComentario";

            var db = CrearBaseDatos();
            var objeto = db.ExecuteNonQuery(qry,
                tipoPublicacion.IdTipoComentario,
                tipoPublicacion.Descripcion
                );

            return (int)objeto;
        }

        public int RegistrarTipoComentario(TipoComentario tipoPublicacion)
        {
            string qry = "usp_RegistrarTipoComentario";

            var db = CrearBaseDatos();
            var objeto = db.ExecuteNonQuery(qry,
                tipoPublicacion.Descripcion
                );

            return (int)objeto;
        }

        public int EliminarTipoComentario(int idTipoComentario)
        {
            string qry = "usp_EliminarTipoComentario";

            var db = CrearBaseDatos();
            var objeto = db.ExecuteNonQuery(qry,
                idTipoComentario
                );

            return (int)objeto;
        }


    }
}
